package com.ftg.midamall.rabbit.chapter0102;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

/**
 * 发送端
 *
 * @author qjw
 * @version 1.0
 * @date 2023/11/28 14:54
 */

public class SendingTwo {
    public static void main(String[] args) {
        // 1.创建连接工厂

        ConnectionFactory connectionFactory = new ConnectionFactory();

        // 2.设置连接工厂的相关参数
        connectionFactory.setHost("localhost");
//        connectionFactory.setPort(5672);
        // 3.基本信息
        //哪一个不同的虚拟机
//        connectionFactory.setVirtualHost("/");

        //用户角色 RBAC
        policymaker:
        management:
        monitoring:
        administrator:

        //用户
//        connectionFactory.setUsername("guest");
//        connectionFactory.setPassword("guest");

        // java - mysql
        // jdbc 四个基础 url driverclass username password

        // java - 加载驱动类
        // java创建数据连接 Connection
        // java 通过 connection 创建  statement ·「sql」
        // java  执行


        try (
                // 4.创建连接
                Connection connection = connectionFactory.newConnection();
                // 5.创建通道
                Channel channel = connection.createChannel()
        ) {

            /**
             * queue ： 列列名称
             * durable : 是否持久化（-mysql）  []
             * exclusive: 是否排他队列  []
             * autodelete: 是否自动删除  []
             * arguments: 其他参数
             */

            channel.queueDeclare("hello", false, false, false, null);


            /**
             * basicPublish: 基础推送
             * exchange: 交换机名称 "" 默认 default
             * routingkey: 路由键 "" 默认   hello
             * props : 其他参数
             * body: 发送的内容
             */
//            Thread.sleep(5000);
            // 7.发送消息
            for (int i = 0; i < 100; i++) {
                String message = "{message:\"第二个..message\"" + i + ",telphone:\"456\"}";
                channel.basicPublish("", "hello", null, message.getBytes());
                System.out.println(" [x] Sent '" + message + "'");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        //365
    }

}
